home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1996 March / Amiga-CD 1996 #3.iso / pd-software / mui_3.1 / developer / autodocs / mui_notify.doc < prev    next >
Text File  |  1996-01-19  |  20KB  |  684 lines

  1. TABLE OF CONTENTS
  2.  
  3. Notify.mui/Notify.mui
  4. Notify.mui/MUIA_ApplicationObject
  5. Notify.mui/MUIA_AppMessage
  6. Notify.mui/MUIA_HelpLine
  7. Notify.mui/MUIA_HelpNode
  8. Notify.mui/MUIA_NoNotify
  9. Notify.mui/MUIA_Parent
  10. Notify.mui/MUIA_Revision
  11. Notify.mui/MUIA_UserData
  12. Notify.mui/MUIA_Version
  13. Notify.mui/MUIM_CallHook
  14. Notify.mui/MUIM_FindUData
  15. Notify.mui/MUIM_GetUData
  16. Notify.mui/MUIM_KillNotify
  17. Notify.mui/MUIM_MultiSet
  18. Notify.mui/MUIM_NoNotifySet
  19. Notify.mui/MUIM_Notify
  20. Notify.mui/MUIM_Set
  21. Notify.mui/MUIM_SetAsString
  22. Notify.mui/MUIM_SetUData
  23. Notify.mui/MUIM_SetUDataOnce
  24. Notify.mui/MUIM_WriteLong
  25. Notify.mui/MUIM_WriteString
  26. Notify.mui/Notify.mui
  27.  
  28.     Notify class is superclass of all other MUI classes.
  29.     It's main purpose is to handle MUI's notification
  30.     mechanism, but it also contains some other methods
  31.     and attributes useful for every object.
  32. Notify.mui/MUIA_ApplicationObject
  33.  
  34.     NAME
  35.     MUIA_ApplicationObject -- (V4 ) [..G], Object *
  36.  
  37.     FUNCTION
  38.     You can obtain a pointer to the application object
  39.     that some gadget belongs to by using this attribute.
  40.     Useful mainly within callback hooks if you do not want
  41.     to deal with global variables.
  42.  
  43.     If your object is not currently attached to an application,
  44.     you will receive NULL.
  45.  
  46.     SEE ALSO
  47.     MUIA_WindowObject
  48. Notify.mui/MUIA_AppMessage
  49.  
  50.     NAME
  51.     MUIA_AppMessage -- (V5 ) [..G], struct AppMessage *
  52.  
  53.     FUNCTION
  54.     When your window is an AppWindow, i.e. you have set the
  55.     MUIA_Window_AppWindow attribute to TRUE, you will be able
  56.     to get AppMessages by listening to MUIA_AppMessage.
  57.     Whenever an AppMessage arrives, this attribute will
  58.     be set to a pointer to that message.
  59.  
  60.     MUIA_AppMessage is object specific. You can e.g. set up
  61.     different notifications for different objects in your window,
  62.     they will only get exectued when icons are dropped over the
  63.     specific object.
  64.  
  65.     If you wait on MUIA_AppMessage with a window object, your
  66.     notify will always get executed when icons are dropped on
  67.     the window.
  68.  
  69.     Notes:
  70.  
  71.     - You should use the MUIM_CallHook method to call a
  72.       hook function when an AppMessage arrives (see below).
  73.       The pointer to the AppMessage is valid only as long as 
  74.       the notification method is executed.
  75.  
  76.     - AppWindows are only possible on the workench screen.
  77.  
  78.  
  79.     EXAMPLE
  80.  
  81.     /* Call the AppMsgHook when an icon is dropped on a listview */
  82.  
  83.     DoMethod(lvobj,MUIM_Notify,MUIA_AppMessage,MUIV_EveryTime,
  84.              lvobj,3,MUIM_CallHook,&AppMsgHook,MUIV_TriggerValue);
  85.  
  86.     /* Call the AppMsgHook when an icon is dropped on the window */
  87.  
  88.     DoMethod(winobj,MUIM_Notify,MUIA_AppMessage,MUIV_EveryTime,
  89.              winobj,3,MUIM_CallHook,&AppMsgHook,MUIV_TriggerValue);
  90.  
  91.     SEE ALSO
  92.     MUIA_Window_AppWindow, MUIA_Application_DropObject, MUIM_CallHook
  93. Notify.mui/MUIA_HelpLine
  94.  
  95.     NAME
  96.     MUIA_HelpLine -- (V4 ) [ISG], LONG
  97.  
  98.     FUNCTION
  99.     Define a line in a help file specified with 
  100.     MUIA_Application_HelpFile.
  101.  
  102.     SEE ALSO
  103.     MUIA_Application_HelpFile, MUIA_HelpNode
  104. Notify.mui/MUIA_HelpNode
  105.  
  106.     NAME
  107.     MUIA_HelpNode -- (V4 ) [ISG], STRPTR
  108.  
  109.     FUNCTION
  110.     Define a node in a help file specified with
  111.     MUIA_Application_HelpFile.
  112.  
  113.     SEE ALSO
  114.     MUIA_Application_HelpFile, MUIA_HelpLine
  115. Notify.mui/MUIA_NoNotify
  116.  
  117.     NAME
  118.     MUIA_NoNotify -- (V7 ) [.S.], BOOL
  119.  
  120.     FUNCTION
  121.     If you set up a notify on an attibute to react on user input,
  122.     you will also recognize events when you change this attribute
  123.     under program control with SetAttrs(). Setting MUIA_NoNotify
  124.     together with your attribute will prevent this notification
  125.     from being triggered.
  126.  
  127.     NOTE
  128.     MUIA_NoNotify is a "one time" attribute. Its only valid during
  129.     the current SetAttrs() call!
  130.  
  131.     EXAMPLE
  132.     SetAttrs(slider,MUIA_NoNotify,TRUE,MUIA_Slider_Level,26,TAG_DONE);
  133. Notify.mui/MUIA_Parent
  134.  
  135.     NAME
  136.     MUIA_Parent -- (V11) [..G], Object *
  137.  
  138.     FUNCTION
  139.     Get a pointer to the parent object of the current object.
  140.     The parent obect is always the group/family object which 
  141.     contains the current object. If an object has no parent
  142.     group, this attribute will be NULL.
  143.  
  144.     SEE ALSO
  145.     group.mui/MUIA_Group_Child
  146. Notify.mui/MUIA_Revision
  147.  
  148.     NAME
  149.     MUIA_Revision -- (V4 ) [..G], LONG
  150.  
  151.     FUNCTION
  152.     Get the revision number of an objects class. Although
  153.     MUIA_Revision is documented at notify class, you will
  154.     of course receive the revision number of the objects true
  155.     class.
  156.  
  157.     EXAMPLE
  158.     strobj = MUI_NewObject(MUIC_String,...,TAG_DONE);
  159.         ...
  160.     get(strobj,MUIA_Version ,&v);
  161.     get(strobj,MUIA_Revision,&r);
  162.     printf("String class version %ld.%ld\n",v,r);
  163.  
  164.     SEE ALSO
  165.     MUIA_Version
  166. Notify.mui/MUIA_UserData
  167.  
  168.     NAME
  169.     MUIA_UserData -- (V4 ) [ISG], ULONG
  170.  
  171.     FUNCTION
  172.     A general purpose value to fill in any kind of information.
  173. Notify.mui/MUIA_Version
  174.  
  175.     NAME
  176.     MUIA_Version -- (V4 ) [..G], LONG
  177.  
  178.     FUNCTION
  179.     Get the version number of an objects class. Although
  180.     MUIA_Version is documented at notify class, you will
  181.     of course receive the version number of the objects true
  182.     class.
  183.  
  184.     EXAMPLE
  185.     strobj = MUI_NewObject(MUIC_String,...,TAG_DONE);
  186.         ...
  187.     get(strobj,MUIA_Version ,&v);
  188.     get(strobj,MUIA_Revision,&r);
  189.     printf("String class version %ld.%ld\n",v,r);
  190.  
  191.     SEE ALSO
  192.     MUIA_Revision
  193. Notify.mui/MUIM_CallHook
  194.  
  195.     NAME
  196.     MUIM_CallHook (V4 )
  197.  
  198.     SYNOPSIS
  199.     DoMethod(obj,MUIM_CallHook,struct Hook *Hook, ULONG param1, /* ... */);
  200.  
  201.     FUNCTION
  202.     Call a standard amiga callback hook, defined by a Hook
  203.     structure. Together with MUIM_Notify, you can easily
  204.     bind hooks to buttons, your hook will be called when
  205.     the button is pressed.
  206.  
  207.     The hook will be called with a pointer to the hook
  208.     structure in a0, a pointer to the calling object in a2
  209.     and a pointer to the first parameter in a1.
  210.  
  211.     INPUTS
  212.     Hook       pointer to a struct Hook.
  213.     param1,... zero or more parameters. The hook function will
  214.                receive a pointer to the first parameter in
  215.                register a1.
  216.  
  217.     EXAMPLE
  218.  
  219.     standalone:
  220.  
  221.     DoMethod(obj,MUIM_CallHook,&hookstruct,13,42,"foobar","barfoo");
  222.  
  223.     within a notification statement:
  224.  
  225.     DoMethod(propobj,MUIM_Notify,MUIA_Prop_First,MUIV_EveryTime,
  226.              propobj,3,MUIM_CallHook,&prophook,MUIV_TriggerValue);
  227.  
  228.     prophook will be called every time the knob is moving and gets
  229.     a pointer to the knobs current level in a1.
  230. Notify.mui/MUIM_FindUData
  231.  
  232.     NAME
  233.     MUIM_FindUData (V8 )
  234.  
  235.     SYNOPSIS
  236.     DoMethod(obj,MUIM_FindUData,ULONG udata);
  237.  
  238.     FUNCTION
  239.     This method tests if the MUIA_UserData of the object
  240.     contains the given <udata> and returns the object
  241.     pointer in this case.
  242.  
  243.     Although this is not very useful for single objects,
  244.     performing this method on objects that handle children
  245.     can become very handy. In this case, all the children
  246.     (any maybe their children) are tested against <udata>
  247.     and the first matching object is returned.
  248.  
  249.     This method is especially useful if you created your
  250.     menu tree with a NewMenu structure and you want to
  251.     find the object pointer for a single menu item.
  252.  
  253.     INPUTS
  254.     udata - userdata to look for.
  255.  
  256.     RESULT
  257.     A pointer to the first object with the specified user data
  258.     or NULL if no object is found.
  259.  
  260.     NOTES
  261.     If you have many objects in your application, MUIM_FindUData
  262.     may take quite long. You can limit the amount of time
  263.     by performing the method not on the application but on the
  264.     window or even on the group/family your object is placed in.
  265.  
  266.     SEE ALSO
  267.     MUIM_GetUData, MUIM_SetUData
  268. Notify.mui/MUIM_GetUData
  269.  
  270.     NAME
  271.     MUIM_GetUData (V8 )
  272.  
  273.     SYNOPSIS
  274.     DoMethod(obj,MUIM_GetUData,ULONG udata, ULONG attr, ULONG *storage);
  275.  
  276.    FUNCTION
  277.     This method tests if the MUIA_UserData of the object
  278.     contains the given <udata> and gets <attr> to
  279.     <storage> for itself in this case.
  280.  
  281.     Although this is not very useful for single objects,
  282.     performing this method on objects that handle children
  283.     can become very handy. In this case, all the children
  284.     (any maybe their children) are searched against <udata>
  285.     and the first matching objects will be asked for the
  286.     specified attribute.
  287.  
  288.     INPUTS
  289.     udata   - userdata to look for.
  290.     attr    - attribute to get.
  291.     storage - place to store the attribute.
  292.  
  293.     NOTES
  294.     If you have many objects in your application, MUIM_GetUData
  295.     may take quite long. You can limit the amount of time
  296.     by performing the method not on the application but on the
  297.     window or even on the group/family your objects are place in.
  298.  
  299.     SEE ALSO
  300.     MUIM_SetUData, MUIM_FindUData
  301. Notify.mui/MUIM_KillNotify
  302.  
  303.     NAME
  304.     MUIM_KillNotify (V4 )
  305.  
  306.     SYNOPSIS
  307.     DoMethod(obj,MUIM_KillNotify,ULONG TrigAttr);
  308.  
  309.     FUNCTION
  310.     MUIM_KillNotify kills previously given notifications on specific 
  311.     attributes.
  312.  
  313.     INPUTS
  314.     TrigAttr - Attribute for which the notify was specified. If you
  315.                set up more than one notify for an attribute, only
  316.                the first one will be killed.
  317.  
  318.     EXAMPLE
  319.     DoMethod(button,MUIM_KillNotify,MUIA_Pressed);
  320.  
  321.     SEE ALSO
  322.     MUIM_Notify
  323. Notify.mui/MUIM_MultiSet
  324.  
  325.     NAME
  326.     MUIM_MultiSet (V7 )
  327.  
  328.     SYNOPSIS
  329.     DoMethod(obj,MUIM_MultiSet,ULONG attr, ULONG val, APTR obj, /* ... */);
  330.  
  331.     FUNCTION
  332.     Set an attribute for multiple objects.
  333.     Receiving an attribute/value pair and a list of objects,
  334.     this method sets the new value for all the objects in the list.
  335.     This is especially useful for disabling/enabling lots of
  336.     objects with one singe function call.
  337.  
  338.     The object that executes this method isn't affected!
  339.  
  340.     Note: This method was implemented in version 7 of notify class.
  341.  
  342.     INPUTS
  343.     attr     attribute to set.
  344.     value    new value for the attribute.
  345.     obj, ... list of MUI objects, terminated with a NULL pointer.
  346.  
  347.     EXAMPLE
  348.     /* disable all the address related gadgets... */
  349.  
  350.     DoMethod(xxx, MUIM_MultiSet, MUIA_Disabled, TRUE,
  351.        ST_Name, ST_Street, ST_City, ST_Country, ST_Phone, NULL);
  352.  
  353.     /* note that the xxx object doesn't get disabled! */
  354.  
  355.     SEE ALSO
  356.     MUIM_Set, MUIM_Notify
  357. Notify.mui/MUIM_NoNotifySet
  358.  
  359.     NAME
  360.     MUIM_NoNotifySet (V9 )
  361.  
  362.     SYNOPSIS
  363.     DoMethod(obj,MUIM_NoNotifySet,ULONG attr, char *format, ULONG val, /* ... */);
  364.  
  365.     FUNCTION
  366.     Acts like MUIM_Set but doesn't trigger any notification.
  367.     This can become useful to avoid deadlocks with bi-directional
  368.     connections.
  369.  
  370.     INPUTS
  371.     attr  attribute you want to set.
  372.     val   value to set the attribute to.
  373.  
  374.     EXMAPLE
  375.     DoMethod(editor,MUIM_Notify,EDIT_Top,MUIV_EveryTime,
  376.        sbar,3,MUIM_NoNotifySet,MUIA_Prop_First,MUIV_TriggerValue);
  377.  
  378.     DoMethod(sbar,MUIM_Notify,MUIA_Prop_First,MUIV_EveryTime,
  379.        editor,3,MUIM_NoNotifySet,EDIT_Top,MUIV_TriggerValue);
  380.  
  381.     SEE ALSO
  382.     MUIM_Set
  383. Notify.mui/MUIM_Notify
  384.  
  385.     NAME
  386.     MUIM_Notify (V4 )
  387.  
  388.     SYNOPSIS
  389.     DoMethod(obj,MUIM_Notify,ULONG TrigAttr, ULONG TrigVal, APTR DestObj, ULONG FollowParams, /* ... */);
  390.  
  391.     FUNCTION
  392.     Add a notification event handler to an object. Notification
  393.     is essential for every MUI application.
  394.  
  395.     A notification statement consists of a source object,
  396.     an attribute/value pair, a destination object and a
  397.     notification method. The attribute/value pair belongs
  398.     to the source object and determines when the notification
  399.     method will be executed on the destination object.
  400.  
  401.     Whenever the source object gets the given attribute set to
  402.     the given value (this can happen because of the user
  403.     pressing some gadgets or because of your program explicitly
  404.     setting the attribute with SetAttrs()), the destination
  405.     object will execute the notification method.
  406.  
  407.     With some special values, you can trigger the notification
  408.     every time the attribute is changing. In this case, you
  409.     can include the triggering attributes value within the
  410.     notification method. See below.
  411.  
  412.     One big problem with notification are endless loops.
  413.     Imagine you have a prop gadget and want to show its
  414.     state with a gauge object. You connect MUIA_Prop_First
  415.     with MUIA_Gauge_Max and everything is fine, the gauge
  416.     gets updated when the user drags around the gadget. On
  417.     the other hand, if your program sets the gauge to a new
  418.     value, you might want your prop gadget to immediately
  419.     show this change and connect MUIA_Gauge_Max width
  420.     MUIA_Prop_First. Voila, a perfect endless loop.
  421.  
  422.     To avoid these conditions, MUI always checks new
  423.     attribute values against the current state and
  424.     cancels notification when both values are equal.
  425.     Thus, setting MUIA_Prop_First to 42 if the prop
  426.     gadgets first position is already 42 won't trigger
  427.     any notification event.
  428.  
  429.     INPUTS
  430.     TrigAttr     attribute that triggers the notification.
  431.  
  432.     TrigValue    value that triggers the notification. The
  433.                  special value MUIV_EveryTime makes MUI execute
  434.                  the notification method every time when
  435.                  TrigAttr changes. In this case, the special
  436.                  value MUIV_TriggerValue in the notification
  437.                  method will be replaced with the value
  438.                  that TrigAttr has been set to. You can use
  439.                  MUIV_TriggerValue up to four times in one
  440.                  notification method. Since version 8 of
  441.                  muimaster.library, you can also use
  442.                  MUIV_NotTriggerValue here. In this case,
  443.                  MUI will replace TRUE values with FALSE
  444.                  and FALSE values with TRUE. This
  445.                  can become quite useful when you try to set
  446.                  "negative" attributes like MUIA_Disabled.
  447.  
  448.     DestObj      object on which to perform the notification
  449.                  method. Either supply a valid object pointer or
  450.                  one of the following special values (V10) which
  451.                  will be resolved at the time the event occurs:
  452.                  MUIV_Notify_Self        - notifies the object
  453.                                            itself.
  454.                  MUIV_Notify_Window      - notifies the object's
  455.                                            parent window.
  456.                  MUIV_Notify_Application - notifies the object's
  457.                                            application.
  458.  
  459.     FollowParams number of following parameters. If you e.g.
  460.                  have a notification method with three parts
  461.                  (maybe MUIM_Set,attr,val), you have to set
  462.                  FollowParams to 3. This allows MUI to copy
  463.                  the complete notification method into a
  464.                  private buffer for later use.
  465.  
  466.     ...          following is the notification method.
  467.  
  468.     EXAMPLE
  469.  
  470.     /*
  471.     ** Every time when the user releases a button
  472.     ** (and the mouse is still over it), the button object
  473.     ** gets its MUIA_Pressed attribute set to FALSE.
  474.     ** Thats what a program can react on with notification,
  475.     ** e.g. by openening another window.
  476.     */
  477.  
  478.     DoMethod(buttonobj,MUIM_Notify,
  479.        MUIA_Pressed, FALSE,                /* attribute/value pair */
  480.        windowobj,                          /* destination object   */
  481.        3,                                  /* 3 following words    */
  482.        MUIM_Set, MUIA_Window_Open, TRUE);  /* notification method  */
  483.  
  484.     /*
  485.     ** Lets say we want to show the current value of a
  486.     ** prop gadget somewhere in a text field:
  487.     */
  488.  
  489.     DoMethod(propobj,MUIM_Notify,      /* notification is triggered   */
  490.        MUIA_Prop_First, MUIV_EveryTime /* every time the attr changes */
  491.        textobj                         /* destination object */
  492.        4,                              /* 4 following words  */
  493.        MUIM_SetAsString, MUIA_Text_Contents,
  494.        "value is %ld !", MUIV_TriggerValue);
  495.        /* MUIV_TriggerValue will be replaced with the
  496.           current value of MUIA_Prop_First */
  497.  
  498.     /*
  499.     ** Inform our application when the user hits return
  500.     ** in a string gadget:
  501.     */
  502.  
  503.     DoMethod(stringobj,MUIM_Notify,
  504.        MUIA_String_Acknowledge, MUIV_EveryTime,
  505.        MUIV_Notify_Application, 2, MUIM_Application_ReturnID, ID_FOOBAR);
  506. Notify.mui/MUIM_Set
  507.  
  508.     NAME
  509.     MUIM_Set (V4 )
  510.  
  511.     SYNOPSIS
  512.     DoMethod(obj,MUIM_Set,ULONG attr, ULONG val);
  513.  
  514.     FUNCTION
  515.     Set an attribute to a value. Normally, you would set
  516.     attributes with intuition.library SetAttrs() or with
  517.     the OM_SET method as with any other boopsi objects.
  518.     But since these calls need a complete tag list, not
  519.     just a single attribute/value pair, they are not
  520.     useful within a MUIM_Notify method.
  521.  
  522.     INPUTS
  523.     attr  attribute you want to set.
  524.     val   value to set the attribute to.
  525.  
  526.     EXMAPLE
  527.     DoMethod(strobj,MUIM_Set,MUIA_String_Contents,"foobar");
  528.     and
  529.     SetAttrs(strobj,MUIA_String_Contents,"foobar",TAG_DONE);
  530.     are equal.
  531.  
  532.     SEE ALSO
  533.     MUIM_SetAsString, MUIM_Notify, MUIM_NoNotifySet
  534. Notify.mui/MUIM_SetAsString
  535.  
  536.     NAME
  537.     MUIM_SetAsString (V4 )
  538.  
  539.     SYNOPSIS
  540.     DoMethod(obj,MUIM_SetAsString,ULONG attr, char *format, ULONG val, /* ... */);
  541.  
  542.     FUNCTION
  543.     Set a (text kind) attribute to a string. This can be useful
  544.     if you want to connect a numeric attribute of an object with
  545.     a text attribute of another object.
  546.  
  547.     INPUTS
  548.     attr    attribute to set.
  549.     format  C like formatting string, remember to use "%ld" !
  550.     val,... one or more paremeters for the format string.
  551.  
  552.     EXAMPLE
  553.  
  554.     stand alone:
  555.  
  556.     DoMethod(txobj,MUIM_SetAsString,MUIA_Text_Contents,
  557.              "My name is %s and I am %ld years old.",name,age);
  558.  
  559.     within a notification statement:
  560.  
  561.     DoMethod(propobj,MUIM_Notify,MUIA_Prop_First,MUIV_EveryTime,
  562.              txobj,4,MUIM_SetAsString,MUIA_Text_Contents,
  563.              "prop gadget shows %ld.",MUIV_TriggerValue);
  564.  
  565.     SEE ALSO
  566.     MUIM_Set, MUIM_Notify
  567. Notify.mui/MUIM_SetUData
  568.  
  569.     NAME
  570.     MUIM_SetUData (V8 )
  571.  
  572.     SYNOPSIS
  573.     DoMethod(obj,MUIM_SetUData,ULONG udata, ULONG attr, ULONG val);
  574.  
  575.    FUNCTION
  576.     This method tests if the MUIA_UserData of the object
  577.     contains the given <udata> and sets <attr> to
  578.     <val> for itself in this case.
  579.  
  580.     Altough this is not very useful for single objects,
  581.     performing this method on objects that handle children
  582.     can become very handy. In this case, all the children
  583.     (any maybe their children) are tested against <udata>
  584.     and all matching objects will get the attribute set.
  585.  
  586.     If you e.g. want to clear several string gadgets in
  587.     your applciation at once, you simply give them the
  588.     same MUIA_UserData and use
  589.  
  590.     DoMethod(app,MUIM_SetUData,MyUDATA,MUIA_String_Contents,NULL);
  591.  
  592.     INPUTS
  593.     udata - userdata to look for.
  594.     attr  - attribute to set.
  595.     val   - value to set attribute to.
  596.  
  597.     NOTES
  598.     If you have many objects in your application, MUIM_SetUData
  599.     may take quite long. You can limit the amount of time
  600.     by performing the method not on the application but on the
  601.     window or even on the group your gadgets are place in.
  602.  
  603.     SEE ALSO
  604.     MUIM_GetUData, MUIM_FindUData, MUIM_SetUDataOnce
  605. Notify.mui/MUIM_SetUDataOnce
  606.  
  607.     NAME
  608.     MUIM_SetUDataOnce (V11)
  609.  
  610.     SYNOPSIS
  611.     DoMethod(obj,MUIM_SetUDataOnce,ULONG udata, ULONG attr, ULONG val);
  612.  
  613.     FUNCTION
  614.     This method performs like MUIM_SetUData, but stops when it has
  615.     found an object with the given user data. If you don't have
  616.     objects with equal user datas and don't rely on setting all
  617.     of them, MUIM_SetUDataOnce is preferrable because it's more
  618.     efficient.
  619.  
  620.     SEE ALSO
  621.     MUIM_SetUData, MUIM_GetUData
  622.  
  623. Notify.mui/MUIM_WriteLong
  624.  
  625.     NAME
  626.     MUIM_WriteLong (V6 )
  627.  
  628.     SYNOPSIS
  629.     DoMethod(obj,MUIM_WriteLong,ULONG val, ULONG *memory);
  630.  
  631.     FUNCTION
  632.     This method simply writes a longword somewhere to memory.
  633.     Although this seems quite useless, it might become handy
  634.     if used within a notify statement. For instance, you could
  635.     easily connect the current level of a slider with some
  636.     member of your programs data structures.
  637.  
  638.     INPUTS
  639.     val    - value to write
  640.     memory - location to write the value to
  641.  
  642.     EXAMPLE
  643.  
  644.     /* Let the slider automagically write its level to a variable */
  645.  
  646.     static LONG level;
  647.  
  648.     DoMethod(slider,MUIM_Notify,MUIA_Slider_Level,MUIV_EveryTime,
  649.        slider,3,MUIM_WriteLong,MUIV_TriggerValue,&level);
  650.  
  651.     SEE ALSO
  652.     MUIM_WriteString, MUIM_Notify
  653. Notify.mui/MUIM_WriteString
  654.  
  655.     NAME
  656.     MUIM_WriteString (V6 )
  657.  
  658.     SYNOPSIS
  659.     DoMethod(obj,MUIM_WriteString,char *str, char *memory);
  660.  
  661.     FUNCTION
  662.     This method simply copies a string somewhere to memory.
  663.     Although this seems quite useless, it might become handy
  664.     if used within a notify statement. For instance, you could
  665.     easily connect the current contents of a string gadget
  666.     with some member of your programs data structures.
  667.  
  668.     Note: The string is copied with strcpy(), you must assure
  669.               that the destination points to enough memory.
  670.  
  671.     INPUTS
  672.     str    - string to copy
  673.     memory - location to write the value to
  674.  
  675.     EXAMPLE
  676.  
  677.     static char buffer[256];
  678.  
  679.     DoMethod(string,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,
  680.        string,3,MUIM_WriteString,MUIV_TriggerValue,buffer);
  681.  
  682.     SEE ALSO
  683.     MUIM_WriteLong, MUIM_Notify
  684.